package csu.web.mypetstore.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.*;

public class Cart implements Serializable {
    private static final long serialVersionUID = 8329559983943337176L;
    //itemMap提高查询效率 通过键值对查找效率更高，这样不用每次遍历List<CartItem>
   // private final Map<String, CartItem> itemMap = Collections.synchronizedMap(new HashMap<String, CartItem>());
    //保存购物车的项
    private final List<CartItem> itemList = new ArrayList<>();

   public CartItem getCartItem(String itemId)
   {
       for(CartItem cartItem:itemList)
       {
           if(cartItem.getItemId().equals(itemId))
           {
               return cartItem;
           }
       }
       return  null;
   }

    public List<CartItem> getCartItemList() {
        return itemList;
    }

    public int getNumberOfItems() {

        return itemList.size();
    }

    public Iterator<CartItem> getAllCartItems() {
        return itemList.iterator();
    }
    public void addCartItem(CartItem cartItem){
        itemList.add(cartItem);
    }
    public BigDecimal getSubTotal() {
        BigDecimal subTotal = new BigDecimal("0");
        Iterator<CartItem> items = getAllCartItems();
        while (items.hasNext()) {
            CartItem cartItem = items.next();
            Item item = cartItem.getItem();
            BigDecimal listPrice = item.getListPrice();
            BigDecimal quantity = new BigDecimal(String.valueOf(cartItem.getQuantity()));
            subTotal = subTotal.add(listPrice.multiply(quantity));
        }
        return subTotal;
    }
//
//    }

}
